package net.vmiranda.jeds.core.usuarios;

import java.io.Serializable;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.persistence.*;


/**
 * The persistent class for the usuarios database table.
 * 
 */
@Entity
@Table(name="usuarios")
public class Usuario implements Serializable {
	
	
	private static final long serialVersionUID = 1L;

	
	@Id
	private String idUsuario;

	@Transient
	private transient Store store;


	@Override
	public String toString() {
		return "Usuario ["
				
				+ "idUsuario="
				+ idUsuario
				+ ", "
				+ (nombreUsuario != null ? "nombreUsuario=" + nombreUsuario
						+ ", " : "")
				+ (password != null ? "password=" + password : "") + "]";
	}

	private String nombreUsuario;

	private String password;

	
	
	public String getFoto(){
		return "/imgs/caras/"+idUsuario+".jpg";
	}
	
    public Usuario() {
    }

	public String getIdUsuario() {
		return this.idUsuario;
	}

	public void setIdUsuario(String idUsuario) {
		this.idUsuario = idUsuario;
	}

	

	public String getNombreUsuario() {
		return this.nombreUsuario;
	}

	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Store getStore() {
		if(store == null){
			
			//FIXME sacar de properties
			Properties props = System.getProperties();
			props.setProperty("mail.imap.host", "imap.gmail.com");
			props.setProperty("mail.imap.port", "993");
			props.setProperty("mail.imap.connectiontimeout", "5000");
			props.setProperty("mail.imap.timeout", "5000");
			props.put("mail.imap.partialfetch", "true");
			System.setProperty("mail.mime.decodetext.strict", "false");

			
			try {
				  Session session = Session.getDefaultInstance(props, null);
				  store = session.getStore("imaps");
				  //cambiar la url del servidor de correo
				  store.connect("imap.gmail.com", getIdUsuario(), getPassword());
			  if (!store.isConnected()) {
			    store.connect();
			  }
			} catch (NoSuchProviderException e) {
			  e.printStackTrace();//FIXME LOGEAR Y TRATAR
			  
			} catch (MessagingException e) {
			  e.printStackTrace();//FIXME LOGEAR Y TRATAR
			}
			}
			return store;
	}

}